document.addEventListener('click', event => {
    workOnSendingMessage(event);
    choosePersonToWrite(event);
})



function choosePersonToWrite(event) {
    // Выбираем людей для отправки письма

    const selectedPerson = event.target.closest('.person-from-list');
    if (!selectedPerson) return;

    if (selectedPerson.closest('[data-selected-by-recipient]')) {
        selectedPerson.removeAttribute('data-selected-by-recipient');
        selectedPerson.style.background = ''; 
    } else {
        selectedPerson.setAttribute('data-selected-by-recipient', 'true');
        selectedPerson.style.background = '#fd7512'; 
    }
}


function workOnSendingMessage(event) {
    // Определяем логику отправки сообщений

    if (!event.target.closest('.send-message')) return;
    event.preventDefault();

    if (!checkContentsOfMessage()) return;
    if (!checkSelectedRecipients()) return;

    sendMessage();

    // НИЖЕ ОПРЕДЕЛЕНИЕ ФУНКЦИЙ

    function checkContentsOfMessage() {
        // Проверяем содержимое сообщения

        if (!document.querySelector('textarea').value) {
            const message = `
                <span class="message-about-empty-email ">Письмо нужно заполнить хоть какими-то словами...</span>
            `
            base.notifyAboutSomething(
                htmlToInsert=message,
                deleteMessage=false,
                deleteNotification=false
            )
            return false;
        } else {
            document.querySelector('.message-about-empty-email')?.remove()
            return true;
        }
    }

    function checkSelectedRecipients() {
        // Проверяем выбранных получателей

        const recipientsOfMessage = base.selectMessageRecipients();
        if (recipientsOfMessage.length) {
            return true;
        } else {
            const message = '<span class="message-about-empty-email">Не было выбрано ни одного получателя...</span>';
            base.notifyAboutSomething(
                htmlToInsert=message,
                deleteMessage=false,
                deleteNotification=false
            )
            return false;
        }
    }

    function sendMessage() {
        // Отправляем сообщение

        const url = document.location.origin + '/sending_message/';
        const writtenMessage = document.querySelector('textarea').value;
        const recipientsOfMessage = base.selectMessageRecipients(basicInformation=true);
        let fullInformation = {
            'writtenMessage': writtenMessage,
            'recipientsOfMessage': recipientsOfMessage,
        }
        fullInformation = JSON.stringify(fullInformation);

        const formData = new FormData(document.querySelector('.form-of-sending-letter'))
        formData.append('sendMessage', 'true');
        formData.append('fullInformation', fullInformation);

        const xhr = new XMLHttpRequest();
        xhr.open("POST", url);
        xhr.send(formData);

        base.removeSelectionOfSelectedPeople();
        base.notifyAboutSomething(
            htmlToInsert=base.getHtmlForSuccessfulSubmissionMessage(),
            deleteMessage=true,
            deleteNotification=true
        )
    }
}